1. Field of the Invention
The present invention relates generally to signal measurement systems such as logic analyzers and digital oscilloscopes and, more particularly, to a system and method for specifying trigger conditions for signals and buses using a graphical user interface on a signal measurement system.
2. Related Art
Conventional logic analyzers and other signal measurement systems such as digital oscilloscopes allow a user to acquire and display digital signal data from a large number of logic signals (signals), such as those that travel over address, data and control lines of a device under test. A device under test may be a microprocessor, random access memory, or other types of chips or chip sets. A display device generally is used to allow the user to visualize the acquired signal data.
The signals typically are received from the device under test on physical electrical lines referred to as xe2x80x9cchannels.xe2x80x9d The channels may be physically assembled into groups called xe2x80x9cpods.xe2x80x9d The received signals are sampled and digitized to form signal data. Digitizing is typically performed by comparing the voltage magnitude of each of these logic signal samples to a reference voltage threshold to determine the logic state of the signals received at each channel. Sampling may occur at one of a number of selectable rates, generally depending upon the frequency at which the sampled signals change logic states.
The resultant signal data are stored in a signal data memory generally having a fixed size, under the control of a sampling clock. The data typically are stored in a sequential manner so that consecutive signal samples are stored in consecutive memory locations. Due to the quantity of signal data, signal data memory is commonly implemented as a wrap-around buffer.
Selection of the portion of the data that is stored and subsequently presented on a display is determined by a user-defined trigger specification. The trigger specification is specified by two parameters, a trigger condition and a trigger position. The occurrence of the trigger condition indicates that data is to be stored. The trigger position determines how much data is stored before and/or after the trigger condition occurs.
The trigger condition may be specified using occurrences such as shift in a signal value from low to high (rising edge) or a shift from high to low (falling edge). Also, a trigger condition may be specified with reference to a signal state, such as a xe2x80x9clogic highxe2x80x9d state or a xe2x80x9clogic lowxe2x80x9d state. These occurrences or states may be referred to as xe2x80x9ceventsxe2x80x9d for purposes of specifying a trigger condition. Alternatively, a trigger condition may be specified by requiring that a number of events occur simultaneously, or in a specified time sequence. Any of the logic signals received by the logic analyzer may be used to specify a trigger condition. The term xe2x80x9cbusxe2x80x9d conventionally is used to refer to a group of channels that are conceptually grouped together even though they need not be physically grouped together. Thus, for example, a bus may be defined as including channels A, B, and C to assist a designer in comparing and analyzing the signals present on those channels. To this end, the signals conceptually grouped together in the bus often are displayed together on a display device where they may be observed or measured by the designer. These signals may be displayed as waveforms. Also, the values of the signals in the bus at a particular instant, collectively referred to as the xe2x80x9cbus valuexe2x80x9d at that time, may be displayed. For example, the logic analyzer may determine that the value of the signal A at a particular time is the binary value xe2x80x9c0,xe2x80x9d the value of the signal B is xe2x80x9c1xe2x80x9d at that time, and the value of the signal C is xe2x80x9c0xe2x80x9d at that time. The bus consisting of those signals may then be said to have the binary value xe2x80x9c010,xe2x80x9d which may also be expressed as a hexadecimal value, or a value in any other base.
Buses may be used to specify trigger conditions in a manner analogous to that in which signals are used. For example, a bus xe2x80x9ceventxe2x80x9d may be defined as the occurrence of a bus value xe2x80x9cequal,xe2x80x9d or xe2x80x9cnot equal,xe2x80x9d to a particular value. Referring to the previous example, a bus event for the bus consisting of channels A, B, and C may be defined as xe2x80x9cequals 010.xe2x80x9d This event occurs when channels A, B, and C have the values noted above. In other known variations, a trigger condition may be specified as the occurrence of a bus value within, or, alternatively outside, a specified range of bus values.
After a trigger condition has been specified, the user may initiate the capture of signal samples. A trigger sequencer generally is used to compare each of the signals identified as contributing to the trigger condition to the specified trigger condition. When the trigger sequencer determines that the signal data matches the specified trigger condition, the trigger sequencer determines if trigger position is satisfied. If the trigger position has been selected to indicate that the display should include only signal data collected prior to occurrence of the trigger condition, then data collection typically ceases upon the occurrence of the trigger condition. Conversely, if the trigger position has been selected to indicate that the display should include only signal data collected subsequent to the occurrence of the trigger condition, the signal data memory generally is allowed to fill with data after the occurrence of the trigger condition. Alternatively, the user may chose a trigger position between these two positions, resulting in a data display that includes signal data that occurred both before and after the trigger condition. The signal data then may be sequentially read from the signal data memory and displayed to the user.
There are numerous conventional formats for displaying the signal data to the user. These formats vary depending on, among other things, the number of signals that are displayed, the manner in which signal data are grouped, the time axes used to display the signal data, the manner in which trigger conditions and trigger positions are shown, and so on.
Conventional signal measurement systems typically require the user to open a separate dialog box to specify and to alter the format in which the signal data are displayed. Aspects of the format that the user may wish to alter include, for example, changes in the groupings of signals into buses, renaming of signals and buses, or adding or removing signals or buses from the display. A drawback to these conventional systems is that the dialog box for changing the format of the display obscures the user""s view of the signals that are being manipulated. A second drawback of using dialog boxes to alter the display is that they generally are not intuitive. That is, they typically require that the user learn a particular syntax and learn other techniques for changing the format of the display. Conventional systems thereby generally require that new users invest significant amounts of time learning how to manipulate the display formats. If this learning is not frequently used, it may be forgotten. The user must then re-learn the syntax and other particulars of display formatting at a subsequent time. Even expert and frequent users suffer from the inconvenience and distraction of having to open and operate the display formatting dialogue box separate from the data signal display.
The present invention is directed in one embodiment to a system for enabling a user to specify a trigger condition of a signal or bus by enabling the user to graphically select the signal or bus from a hierarchically arranged list of signal or bus names. The user may make this selection from a graphical user interface of a signal measurement system. The user also graphically selects the signal trigger condition. A trigger-specification element identifying the trigger condition is visually associated with a displayed name of the first signal or bus. The user may select the signal trigger condition of the first signal or bus by selecting the first trigger-specification element. The signal measurement system may be a logic analyzer.
In some embodiments, the hierarchically arranged list is vertically aligned and each signal or bus name is visually associated with one of a first group of trigger-specification elements by horizontal alignment. In other embodiments, the hierarchically arranged list is horizontally aligned, and each signal or bus name is visually associated with one of a first group of trigger-specification elements by vertical alignment.
Also in some embodiments, each of the first group of trigger-specification elements enables the user to choose from a group of trigger condition choices consisting of any one of: rising-edge, falling-edge, either-edge, low-level, high-level, don""t care, bus, positive pulse, and negative pulse. Each of the first group of trigger-specification elements may be associated with a trigger condition that occurs at a first point in time.
The system further may enable a user to specify a second trigger condition of the first signal or bus by selecting from a second group of trigger-specification elements that are visually associated with the names of the plurality of signals or buses. With respect to this embodiment, the hierarchical structure may be vertically aligned, and each signal or bus name may be visually associated with one of the second group of trigger-specification elements by horizontal alignment. Each of the second group of trigger-specification elements enables the user to choose from a group of trigger condition choices consisting of any one of: rising-edge, falling-edge, either-edge, low-level, high-level, don""t care, bus, positive pulse, and negative pulse. Each of the second group of trigger-specification elements may be associated with a trigger condition that occurs at a second point in time. In some implementations, the second group of trigger-specification elements is displayed to the right of the first group of trigger-specification elements. The second period of time occurs later than the first period of time.
The above embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible, whether they be presented in association with a same, or a different, aspect of the invention. The description of one embodiment is not intended to be limiting with respect to other embodiments. Also, any one or more function, step, operation, or technique described elsewhere in this specification may, in alternative embodiments, be combined with any one or more function, step, operation, or technique described in the summary. Thus, the above embodiments are illustrative rather than limiting.